package io.renren.common.utils;

import io.renren.common.utils.WebSocketSer;

import java.io.OutputStream;
import java.io.PrintStream;

/**
 * 继承自 `PrintStream`，可以同时将输出内容通过WebSocket发送到页面上。
 */
public class TeePrintStream extends PrintStream {

	/**
	 * 构造函数，用于创建 `TeePrintStream` 对象。
	 *
	 * @param mainStream   主要的输出流
	 */
	public TeePrintStream(OutputStream mainStream) {
		super(mainStream); // 调用父类 PrintStream 的构造函数，传入主要的输出流
	}

	/**
	 * 将字节数组输出到主要输出流。
	 *
	 * @param buf 输出的字节数组
	 * @param off 数组的起始偏移量
	 * @param len 要写入的字节数
	 */
	@Override
	public void write(byte[] buf, int off, int len) {
		super.write(buf, off, len); // 将字节数组输出到主要输出流
		
		// 检测换行符
		String str = new String(buf, off, len);
		if ("\r\n".equals(str) || "\r".equals(str)) {
			return;
		}
		WebSocketSer.sendInfo(str, null);
	}
}